﻿using System;

namespace Autorun
{
	[Flags]
	public enum ScheduleTypes
	{
		Inactive = 0,
		Startup = 1,
		Shutdown = 2,
		Daily = 4,
		Weekly = 8,
		Monthly = 16
	}

	[Flags]
	public enum ScheduleWeekDays
	{
		None = 0,
		Monday = 1,
		Tuesday = 2,
		Wednesday = 4,
		Thursday = 8,
		Friday = 16,
		Saturday = 32,
		Sunday = 64,
		Week = Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday,
		WorkWeek = Monday | Tuesday | Wednesday | Thursday | Friday,
	}

	[Flags]
	public enum ScheduleMonths
	{
		None = 0,
		Jan = 1,
		Feb = 2,
		Mar = 4,
		Apr = 8,
		May = 16,
		Jun = 32,
		Jul = 64,
		Aug = 128,
		Sep = 256,
		Oct = 512,
		Nov = 1024,
		Dec = 2048
	}

	[Flags]
	public enum ScheduleRunOnDayOccurences
	{
		None = 0,
		First = 1,
		Second = 2,
		Third = 4,
		Fourth = 8,
		Last = 128
	}

	[Flags]
	public enum TaskStatuses
	{
		NotStarted = 0,
		PreProcess = 1,
		Process = 2,
		PostProcess = 4,
		Finished = 7, // When a thread successfully finished his work
		Stopped = 8, // When a thread has been stopped
		Cancelled = 16, // When an error occured
	}

	[Flags]
	public enum ServiceStatuses
	{
		Stopped,
		Running
	}

	[Flags]
	public enum SeverityLevels
	{
		Verbose = 0,
		Info = 1,
		Warning = 2,
		Error = 4
	}

	[Flags]
	public enum SendTaskReportModes
	{
		Never = 0,
		OnErrors,
		Always
	}

	[Flags]
	public enum SendDailyReportModes
	{
		Never = 0,
		OnlyNotEmpty,
		AlsoEmpty
	}

	public enum Counters
	{
		ProcessorUsage = 0,
		ProcessorAverage = 1
		//Memory = 1,
		//RunningServices = 2,
		//WaitingServices = 3
	}
}
